package com.jservice.web.smkRecharge;

import com.jservice.framework.dto.Order;
import com.jservice.framework.dto.Pageable;
import com.jservice.framework.dto.Pager;
import com.jservice.framework.spring.SpringContextUtil;
import com.jservice.model.SmkRecharge;
import com.jservice.web.base.JBaseService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.Date;

/**
 * SmkReChargeService - 充值业务
 *
 * @Author cwledit
 * @DATE 2017/6/21.
 */
@Service("smkReChargeService")
@Transactional(readOnly = true)
public class SmkReChargeService extends JBaseService{

    public static final SmkRecharge DAO = new SmkRecharge();

    public static SmkReChargeService me() {
        return SpringContextUtil.getBean("smkReChargeService");
    }

    public Pager findPage(Pageable pageable) {
        Order order1 = new Order();
        order1.setProperty("create_date");
        order1.setDirection(Order.Direction.desc);

        pageable.getOrders().add(order1);
        return findPage(pageable,DAO, SmkRecharge.TABLE_NAME);
    }

    /**
     * @param out_trade_no 商户订单号
     * @param trade_status  0	未付款	用户未付款
                            3	处理中	处理中
                            4	撤销	撤销或者关闭该订单
                            5	充值成功	市民卡充值接口返回成功
                            6	充值失败	市民卡充值接口返回失败
                            7	预充值成功
     * @param trade_no       卡号
     * @param total_amount  充值金额(单位'分')
     * @return
     */
    @Transactional(readOnly = false)
    public boolean updateStatus(String out_trade_no, String trade_status, String trade_no, String total_amount){
        SmkRecharge smkRecharge = SmkRecharge.dao.doFindFirst(" sn = ? and trade_no = ? and amount = ?",out_trade_no,trade_no,total_amount);
        if (smkRecharge == null){
            return false;
        }
        smkRecharge.setStatus(trade_status);
        smkRecharge.setModifyDate(new Date());
        return smkRecharge.update();
    }

}
